<?php
namespace Base;


/**
 * Module
 * Configurações do módulo Base
 * @author DiegoWagner
 *
 */
class Module {

    
    /**
     * @method getConfig()
     * Retorna o arquivo de configurações de rotas, controllers, serviços, etc...
     */
    public function getConfig() {
        return include __DIR__ . '/config/module.config.php';
    }
    
    

    /**
     * @method getAutoloaderConfig()
     * Retorna as configurações do autoloader
     * @return multitype:multitype:multitype:string
     */
    public function getAutoloaderConfig() {
        return array(
            'Zend\Loader\StandardAutoloader' => array(
                'namespaces' => array(
                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                ),
            ),
        );
    }
    
    
    
    /**
     * @method getViewHelperConfig()
     * Retorna as configurações dos views helpers
     * @return multitype:multitype:multitype:string
     */
    public function getViewHelperConfig() {
    	return array(
    		'factories' => array(
    			'flashMessage' => function($sm) {
    
    				$flashmessenger = $sm->getServiceLocator()
					    				 ->get('ControllerPluginManager')
					    				 ->get('flashmessenger');
    
    				$messages = new View\Helper\FlashMessages();
    				$messages->setFlashMessenger($flashmessenger); 
    						
    				return $messages;

    			}
    		),
    	);
    }
    
    
    
    /**
     * @method getServiceConfig()
     * Retorna as configurações dos serviços cadastrados
     * @return multitype:multitype:NULL  |\Zend\Mail\Transport\Smtp
     */
    public function getServiceConfig() {
    	return array();
    }
}
